package com.ocean.linkedlist;

/**
 * https://leetcode.cn/problems/swap-nodes-in-pairs/
 */
public class SwapPairs {

    public static void main(String[] args) {

        ListNode e4 = new ListNode(4, null);
        ListNode e3 = new ListNode(3, e4);
        ListNode e2 = new ListNode(2, e3);
        ListNode e1 = new ListNode(1, e2);
        // 1 2 3 4
        // 2 1 4 3
        ListNode.print(e1);
        ListNode listNode = new SwapPairs().swapPairs(e1);
        ListNode.print(listNode);
    }

    public ListNode swapPairs(ListNode head) {
        ListNode dummy = new ListNode();
        dummy.next = head;
        ListNode temp = dummy;
        while (temp.next != null && temp.next.next != null) {
            ListNode node1 = temp.next;
            ListNode node2 = node1.next;
            node1.next = node2.next;
            temp.next = node2;
            node2.next = node1;
            temp = node1;
        }
        return dummy.next;
    }
}
